|
5 | 5 | from kitsune.users.tests import GroupFactory, UserFactory
|
6 | 6 | from kitsune.wiki.handlers import DocumentListener
|
7 | 7 | from kitsune.wiki.models import Document, Revision
|
8 |
| -from kitsune.wiki.tests import DocumentFactory, HelpfulVoteFactory, RevisionFactory |
| 8 | +from kitsune.wiki.tests import ( |
| 9 | + ApprovedRevisionFactory, |
| 10 | + DocumentFactory, |
| 11 | + HelpfulVoteFactory, |
| 12 | + RevisionFactory, |
| 13 | +) |
9 | 14 |
|
10 | 15 |
|
11 | 16 | class TestDocumentListener(TestCase):
|
@@ -124,3 +129,41 @@ def test_non_approved_revision_handling(self):
|
124 | 129 | self.assertEqual(
|
125 | 130 | doc_to_reassign.current_revision.creator.username, settings.SUMO_BOT_USERNAME
|
126 | 131 | )
|
| 132 | + |
| 133 | + def test_revision_reviewer_replacement(self): |
| 134 | + """ |
| 135 | + Test handling of a revision's "reviewer" and "readied_for_localization_by" fields |
| 136 | + when the user they reference is deleted. |
| 137 | + """ |
| 138 | + reviewer = UserFactory() |
| 139 | + contributor = UserFactory() |
| 140 | + rev1 = ApprovedRevisionFactory( |
| 141 | + creator=contributor, |
| 142 | + reviewer=reviewer, |
| 143 | + readied_for_localization_by=reviewer, |
| 144 | + ) |
| 145 | + rev2 = ApprovedRevisionFactory( |
| 146 | + creator=self.user, |
| 147 | + reviewer=reviewer, |
| 148 | + readied_for_localization_by=reviewer, |
| 149 | + ) |
| 150 | + rev3 = ApprovedRevisionFactory( |
| 151 | + creator=contributor, |
| 152 | + reviewer=self.user, |
| 153 | + readied_for_localization_by=self.user, |
| 154 | + ) |
| 155 | + |
| 156 | + self.listener.on_user_deletion(self.user) |
| 157 | + |
| 158 | + for rev in (rev1, rev2, rev3): |
| 159 | + rev.refresh_from_db() |
| 160 | + |
| 161 | + self.assertEqual(rev1.creator.username, contributor.username) |
| 162 | + self.assertEqual(rev1.reviewer.username, reviewer.username) |
| 163 | + self.assertEqual(rev1.readied_for_localization_by.username, reviewer.username) |
| 164 | + self.assertEqual(rev2.creator.username, settings.SUMO_BOT_USERNAME) |
| 165 | + self.assertEqual(rev2.reviewer.username, reviewer.username) |
| 166 | + self.assertEqual(rev2.readied_for_localization_by.username, reviewer.username) |
| 167 | + self.assertEqual(rev3.creator.username, contributor.username) |
| 168 | + self.assertEqual(rev3.reviewer.username, settings.SUMO_BOT_USERNAME) |
| 169 | + self.assertEqual(rev3.readied_for_localization_by.username, settings.SUMO_BOT_USERNAME) |
0 commit comments